#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;

//一元稀疏多项式的应用 
//eg: A(x) = 7 + 3x的三次方 + 9x的八次方 + 5x的17次方 
//	  B(x) = 8x + 22x的七次方 - 9x的八次方 

 
typedef struct ElemType{
	int a;//系数 
	int n;//幂，次方 
}ElemType;

typedef struct LNode{
	ElemType data; //数据域 
	struct LNode *next;//指针域 
}LNode, *LinkList;

void CreateList_R(LinkList &L){
	L = new LNode;
	LNode *p = L;
	int length;
	puts("请输入该多项式的项数");
	cin>>length;
	for(int i = 1; i <= length; i++){
		length--;
		LNode *s = new LNode;
		printf("请输入第%d项的系数：", i);
		cin>>s->data.a;
		printf("请输入第%d项的幂指数：", i);
		cin>>s->data.n;
		p->next = s;
		p = p->next;
	} 
	p->next = NULL;
}

void Dispute(LinkList L){
	LNode *p = L;
	while(p->next){
		p = p->next;
		printf("%dx的%d次方 + ", p->data.a, p->data.n); 
	}
}

int main(void)
{
	LinkList La;
	CreateList_R(La);
	Dispute(La);
	return 0;
}